package com.example.staff.hub.dao;

import com.example.staff.hub.entity.Staff;

import java.util.List;

/**
 * 员工数据访问接口
 */
public interface IStaffDao {

    /**
     * 获取数据库信息
     * @return 数据库信息
     */
    String getDatabaseInfo();

    /**
     * 添加一个新员工到数据库中。
     *
     * @param staff 要添加的员工对象
     */
    void addNew(Staff staff);

    /**
     * 根据员工ID从数据库中删除员工。
     *
     * @param id 要删除的员工的ID
     */
    void deleteById(String id);

    /**
     * 根据员工ID更新数据库中的员工信息。
     *
     * @param staff 包含更新信息的员工对象
     */
    void updateById(Staff staff);

    /**
     * 根据员工ID查找并返回对应的员工信息。
     *
     * @param id 要查找的员工ID
     * @return 对应的员工对象，如果未找到则返回 null
     */
    Staff findById(String id);

    /**
     * 返回数据库中所有员工的列表。
     *
     * @return 包含所有员工的列表
     */
    List<Staff> findAll();

}